home *** CD-ROM | disk | FTP | other *** search
- *COPY GUPVAR 10000000
- * Specific variables 10001000
- EVCTR DS F File sequence number TSO 10002000
- ICPRGS DS 4F Saved registers for type-out @SC88026 10003000
- * 10004000
- PPLAREA DS A(0,0,CPECB,PRSPCL,RESULT,0,USERBLK) GUP1.1 10005000
- CPECB DS F GETLINE/PUTLINE/PUTGET ECB @TS86001 10006000
- RESULT DS A Parse PDL ptr GUP1.1 10007000
- USERBLK DS D Parse work area (not used) GUP1.1 10008000
- * 10009000
- CAMLOC DS 4F Ptrs for locating dataset @SC86299 10010000
- CAMOBT DS 4F Ptrs for getting DSCB @SC86299 10011000
- CAMVOLS DS 0D,XL265 Storage for volume list @SC86299 10012000
- CAMDSCB DS 0F,XL101 Storage for DSCB @SC88014 10013000
- ORG CAMDSCB+1 @SC88014 10014000
- DS1VOL DS CL6,XL2 Volume serial @SC86299 10015000
- DS1CRDT DS 2XL3,3X,XL13 Creation date @SC86299 10016000
- DS1RFDT DS XL3,XL4 Reference date @SC86299 10017000
- DS1DSO DS XL2 Dataset org @SC86299 10018000
- DS1RCF DS X Record format @SC86299 10019000
- DS1OPT DS X Error option @SC86299 10020000
- DS1BLK DS H Block size @SC86299 10021000
- DS1LRC DS H Logical record length @SC86299 10022000
- ORG , @SC86299 10023000
- DYNPL DS A(0,0,0,0,DYNDSP,0),X'80',AL3(DYNRC) GUP1.1 10024000
- DYNRC DS F @SC86299 10025000
- DYNDSP DS X @SC86299 10026000
- FNAME DS CL130 Buffer for reading TSO 10027000
- *COPY GUPSPC 10028000
- * External references in TSO GUPI: 10028100
- * CLOSE DCB FREEMAIN FREEPOOL GETMAIN IKJCPPL IKJENDP 10028200
- * IKJIDENT IKJKEYWD IKJNAME IKJPARM IKJPOSIT IKJSUBF LINK 10028300
- * LOCATE OBTAIN OPEN SAVE 10028400
- * 10028500
- * Specific preliminaries 10029000
- &STORDS SETC 'KSTORG' Storage DSECT for Kermit globals @SC89268 10029500
- * 10030000
- LFID EQU 60 Filespec length GUP1.2 10031000
- STKDWDS EQU 511 Requested stack length TSO 10032000
- XXBAT EQU X'04' Special flag for batch mode GUP1.1 10033000
- KWRKBASE EQU 11 Base register for work area @SC89268 10033300
- KSUBBASE EQU 12 Base register for CSECT @SC89268 10033600
- * 10034000
- IKJCPPL , GUP1.1 10035000
- *COPY GUPFIN 10036000
- LR 2,15 Save return code GUP1.1 10037000
- CLOSE MSGFIL GUP1.1 10038000
- LR 15,2 Return code GUP1.1 10039000
- *COPY GUPNIT 10040000
- * TSO user interface TSO 10041000
- * 10042000
- LA 4,DYNDSP Set up DYNALC plist GUP1.2 10043000
- LA 6,DYNRC GUP1.2 10044000
- STM 4,6,DYNPL+16 GUP1.2 10045000
- OI DYNPL+24,X'80' Mark end of plist GUP1.2 10046000
- * 10047000
- TM 0(1),X'80' What kind of plist? GUP1.1 10048000
- BZ GUPCP Seems to be CP GUP1.1 10049000
- MVC SRCNAM(3*LFID+3),BATDDNS Copy ddnames+mark GUP1.1 10050000
- LA 4,XXCOR+XX8+XXBAT Default flags GUP1.1 10051000
- L 1,0(1) Ptr to parm string GUP1.1 10052000
- LH 2,0(1) Get length GUP1.1 10053000
- OPTLP SR 0,0 Mask: zeroes GUP1.1 10054000
- CH 2,EH2 Enough for a 'NO'? GUP1.1 10055000
- BL OPTZ No GUP1.1 10056000
- CLC =C'NO',2(1) Is it? GUP1.1 10057000
- BNE OPTYES No, assume positive option GUP1.1 10058000
- EH2 EQU *+2,2 GUP1.1 10059000
- LA 1,2(1) Yes, it is. Space over the NO GUP1.1 10060000
- SH 2,EH2 Cut off the NO GUP1.1 10061000
- BCTR 0,0 Mask: ones GUP1.1 10062000
- OPTYES SH 2,EH4 See if room for option GUP1.1 10063000
- BL OPTZ No, done scan GUP1.1 10064000
- CLC =C'MARK=',2(1) GUP1.1 10065000
- BNE OPTCK Check flags GUP1.1 10066000
- SH 2,EH4 See if mark field available GUP1.1 10067000
- BL OPTZ No, done scan GUP1.1 10068000
- MVC MRKD,7(1) Copy in case NOSEQ8 GUP1.1 10069000
- LA 1,8(1) Space over option GUP1.1 10070000
- B OPTLQ GUP1.1 10071000
- OPTCK LA 3,XX8 Test for SEQ8 GUP1.1 10072000
- CLC =C'SEQ8',2(1) GUP1.1 10073000
- BE OPTOK Found it GUP1.1 10074000
- LA 3,XXCOR Test for in-storage GUP1.1 10075000
- CLC =C'STOR',2(1) GUP1.1 10076000
- BNE OPTZ None of these, give up GUP1.1 10077000
- OPTOK OR 4,3 Turn flag on GUP1.1 10078000
- NR 3,0 GUP1.1 10079000
- XR 4,3 Turn off if "NO" GUP1.1 10080000
- LA 1,4(1) Advance ptr over option GUP1.1 10081000
- OPTLQ LTR 2,2 Any more options? GUP1.1 10082000
- BNP OPTZ GUP1.1 10083000
- CLI 2(1),C',' Make sure there is a separator GUP1.1 10084000
- BNE OPTZ No, give up GUP1.1 10085000
- LA 1,1(1) GUP1.1 10086000
- BCT 2,OPTLP GUP1.1 10087000
- OPTZ STC 4,FLG Save current flags GUP1.1 10088000
- OPEN (MSGFIL,OUTPUT) Message data set GUP1.1 10089000
- TM MSGFIL+FABOFLGS-FABD,X'10' GUP1.1 10090000
- BZ ERREX Oops GUP1.1 10091000
- B OPN GUP1.1 10092000
- * 10093000
- USING CPPL,1 @SC86299 10094000
- GUPCP MVI SRCNAM,C' ' GUP1.1 10095000
- MVC SRCNAM+1(3*LFID+2),SRCNAM Blank out parm area GUP1.1 10096000
- MVI FLG,0 GUP1.1 10097000
- L 3,CPPLUPT Fill in parse parameter list GUP1.1 10098000
- L 4,CPPLECT GUP1.1 10099000
- LA 5,CPECB GUP1.2 10100000
- L 6,=V(PRSPCL) GUP1.2 10101000
- LA 7,RESULT GUP1.2 10102000
- L 8,CPPLCBUF GUP1.2 10103000
- LA 9,USERBLK GUP1.2 10104000
- STM 3,9,PPLAREA GUP1.1 10105000
- DROP 1 GUP1.1 10106000
- MVI CPECB,0 GUP1.1 10107000
- LINK EP=IKJPARS,MF=(E,PPLAREA) Perform parsing serviceUP1.1 10108000
- LTR 15,15 Any good? GUP1.1 10109000
- BNZ ERREX No, exit with error GUP1.1 10110000
- * Interpret results GUP1.1 10111000
- L 8,RESULT Address parsed data GUP1.1 10112000
- USING IKJPARMD,8 GUP1.1 10113000
- LA 1,PRSSRC -> Base dataset name info GUP1.1 10114000
- LA 6,SRCNAM -> Destination field GUP1.1 10115000
- BAL 7,MOVDSN Move dataset name GUP1.1 10116000
- LA 1,PRSCTL Do update DSN GUP1.1 10117000
- LA 6,CTLNAM GUP1.1 10118000
- BAL 7,MOVDSN GUP1.1 10119000
- LA 1,PRSOUT Do output DSN GUP1.1 10120000
- LA 6,OUTNAM GUP1.1 10121000
- BAL 7,MOVDSN GUP1.1 10122000
- CLI PRSSEQ8+1,1 SEQ8 option set? GUP1.1 10123000
- BNE *+8 No GUP1.1 10124000
- OI FLG,XX8 Yes, enable flag GUP1.1 10125000
- CLI PRSSTOR+1,1 STOR option set? GUP1.1 10126000
- BNE *+8 No GUP1.1 10127000
- OI FLG,XXCOR Yes, enable flag GUP1.1 10128000
- LA 1,PRSMRKV GUP1.1 10129000
- LA 6,MRKD GUP1.1 10130000
- BAL 7,MOVMEM Move mark, if any GUP1.1 10131000
- B OPN Done GUP1.1 10132000
- * 10133000
- MOVDSN L 2,0(1) --> dataset name GUP1.1 10134000
- LH 3,4(1) Length GUP1.1 10135000
- BCTR 3,0 GUP1.1 10136000
- EX 3,CPYTXT Move dataset name GUP1.1 10137000
- LA 6,44(6) Point to member storage GUP1.1 10138000
- LA 1,8(1) GUP1.1 10139000
- MOVMEM L 2,0(1) Member name GUP1.1 10140000
- LTR 2,2 Test for member GUP1.1 10141000
- BZR 7 None GUP1.1 10142000
- LH 3,4(1) Length GUP1.1 10143000
- BCTR 3,0 GUP1.1 10144000
- EX 3,CPYTXT Move member name GUP1.1 10145000
- BR 7 GUP1.1 10146000
- CPYTXT MVC 0(,6),0(2) GUP1.1 10147000
- DROP 8 GUP1.1 10148000
- * 10149000
- WTEXT STM 14,1,ICPRGS Save registers GUP1.1 10150000
- TM FLG,XXBAT Batch version? GUP1.1 10151000
- BZ WTXCP No, just do a TPUT GUP1.1 10152000
- STH 0,MSGFIL+FABLRECL-FABD Save LRECL GUP1.1 10153000
- LR 0,1 GUP1.1 10154000
- PUT MSGFIL,(0) And write it out GUP1.1 10155000
- B WTXRET GUP1.1 10156000
- WTXCP SVC 93 GUP1.1 10157000
- WTXRET LM 14,1,ICPRGS Restore and return GUP1.1 10158000
- BR 15 GUP1.1 10159000
- * 10160000
- MSGFIL DCB DDNAME=SYSPRINT,MACRF=PM,RECFM=U,BLKSIZE=130,DSORG=PS 10161000
- * 10162000
- BATDDNS DC CL(LFID)'+SYSUT1' GUP1.2 10163000
- DC CL(LFID)'+SYSIN' GUP1.2 10164000
- DC CL(LFID)'+SYSUT2' GUP1.2 10165000
- DC C' ' Leave sequence field blank GUP1.1 10166000
- * 10167000
- PRSPCL IKJPARM , GUP1.1 10168000
- PRSSRC IKJPOSIT DSNAME,USID,PROMPT='SOURCE DSNAME' GUP1.1 10169000
- PRSCTL IKJPOSIT DSNAME,USID,PROMPT='UPDATE DSNAME' GUP1.1 10170000
- PRSOUT IKJPOSIT DSNAME,USID,PROMPT='OUTPUT DSNAME' GUP1.1 10171000
- PRSSEQ8 IKJKEYWD DEFAULT='SEQ8' GUP1.1 10172000
- IKJNAME 'SEQ8' GUP1.1 10173000
- IKJNAME 'NOSEQ8' GUP1.1 10174000
- PRSSTOR IKJKEYWD DEFAULT='STOR' GUP1.1 10175000
- IKJNAME 'STOR' GUP1.1 10176000
- IKJNAME 'NOSTOR' GUP1.1 10177000
- PRSMARK IKJKEYWD , GUP1.1 10178000
- IKJNAME 'MARK',SUBFLD=PRS2MRK GUP1.1 10179000
- PRS2MRK IKJSUBF , GUP1.1 10180000
- PRSMRKV IKJIDENT 'SEQUENCE MARK',FIRST=ANY,OTHER=ANY,MAXLNTH=3 UP1.1 10181000
- IKJENDP , GUP1.1 10182000
- GUPI CSECT 10183000
- * TSO 10184000
- OPNERR LA 1,L'OPNEM TSO 10185000
- BAL 0,FILERR TSO 10186000
- OPNEM DC C'FILE NOT FOUND: ' TSO 10187000
- DSKERR LA 2,8(1) TSO 10188000
- LA 1,L'DSKEM TSO 10189000
- BAL 0,FILERR TSO 10190000
- DSKEM DC C'DISK ERROR ON FILE ' TSO 10191000
- * TSO 10192000
- FILERR LA 4,FNAME Buffer to use TSO 10193000
- LR 5,1 TSO 10194000
- MVCL 4,0 Copy message TSO 10195000
- LA 3,LFID Length of a name field TSO 10196000
- LR 5,3 TSO 10197000
- MVCL 4,2 Copy name TSO 10198000
- LA 1,FNAME Start of buffer again TSO 10199000
- SR 4,1 TSO 10200000
- WTEXT (1),(4) TSO 10201000
- B ERREX TSO 10202000
- *COPY GUPSUB 10203000
- TITLE 'DISKIO Routine - performs disk I/O functions' 10204000
- * Function selected on entry by R0: 10205000
- * 1=> open (in): R1->pattern FDB, R2->name. Returns R0->FAB, R1->FDB 10206000
- * 2=> open (out): (same, but no complete FDB if new file) 10207000
- * 4=> close file: R1->adr(FAB). 10208000
- * 9=> read: R1->FAB. Returns R15=12 if EOF, 0 if ok; R0=# data 10209000
- * 10=> write: R1->FAB. Returns R15=13 if disk full, 0 if ok. 10210000
- DISKIO ENTER 10211000
- USING FABD,3 @SC86295 10212000
- SR 4,4 Signal no block assigned @SC86295 10213000
- LA 6,FDBTRKAL-FDBD(1) Use pattern TRKAL @SC88026 10214000
- ST 6,DYNPL+20 Set up calling sequence GUP1.1 10215000
- BCT 0,DSKOPNO @SC86295 10216000
- * 10217000
- * Open for input file whose name is at (R2), FDB at (R1) 10218000
- MVI DYNDSP,X'88' SHR,KEEP @SC86299 10219000
- BAL 9,DSKALC Get FAB @SC86295 10220000
- BAL 2,DSKLKP Get DSCB @SC86299 10221000
- BNZ DSKER1 Not found @SC86295 10222000
- BAL 14,DSKVALS @SC86295 10223000
- BAL 9,DSKFABS Set up FAB from FDB @SC86299 10224000
- CNOP 0,4 @SC86299 10225000
- BAL 2,DSKOPT Open and test @SC86299 10226000
- OPEN (0,INPUT),MF=L @SC86299 10227000
- * 10228000
- * Open for output file whose name is at (R2), FDB at (R1) 10229000
- DSKOPNO BCT 0,DSKTEST @SC86295 10230000
- MVI DYNDSP,X'42' NEW,CATLG @SC86299 10231000
- BAL 9,DSKALC Get FAB @SC86295 10232000
- BAL 2,DSKLKP Get DSCB @SC86299 10233000
- BNZ DSKOPN Not found, just writing new @SC86299 10234000
- MVI DYNDSP,X'18' OLD,KEEP @SC86299 10235000
- TM DS1DSO,2 PDS? GUP1.1 10236000
- BZ DSKOPN No, we just write over it GUP1.1 10237000
- BAL 14,DSKVALS Yes, copy DCB info GUP1.1 10238000
- BAL 9,DSKFABS GUP1.1 10239000
- DSKOPN CNOP 0,4 @SC86299 10240000
- BAL 2,DSKOPT Open and test @SC86299 10241000
- OPEN (0,OUTPUT),MF=L @SC86299 10242000
- DSKOPT CLI FABDSN,C'+' Just DDNAME? GUP1.1 10243000
- BE DSKOPDZ Yes, don't need to allocate GUP1.1 10244000
- KCALL DYNALC,DYNPL,EXT @SC86299 10245000
- DSKOPDZ DS 0H GUP1.1 10246000
- OPEN ((3)),MF=(E,(2)) @SC86299 10247000
- TM FABOFLGS,X'10' @SC86299 10248000
- BZ DSKER1 Didn't work @SC86299 10249000
- B RTRN0 @SC86295 10250000
- * 10251000
- DSKTEST BCT 0,DSKCLOS @SC86295 10252000
- B RTRN1 @SC86299 10253000
- * 10254000
- * Close file whose ticket is at (R1), release block 10255000
- DSKCLOS BCT 0,DSKRED @SC86295 10256000
- ICM 3,15,0(1) Get FAB ptr, if any @SC86295 10257000
- BZ RTRN0 None, ignore @SC86295 10258000
- XC 0(4,1),0(1) Yes, now clear ticket @SC86295 10259000
- CLOSE ((3)) @SC86299 10260000
- FREEPOOL (3) @SC86299 10261000
- LA 0,FABDWDS @SC86295 10262000
- LR 1,3 @SC86299 10263000
- DMSFRET DWORDS=(0),LOC=(1) @SC86295 10264000
- B RTRN0 @SC86295 10265000
- * 10266000
- * Read from file whose ticket is at (R1) 10267000
- DSKRED SH 0,=H'4' 10268000
- BCT 0,DSKWRT @SC86295 10269000
- LTR 3,1 Get FAB ptr @SC86299 10270000
- BNP RTRN1 Not defined anymore @SC86299 10271000
- L 15,FABGET I/O routine @SC86299 10272000
- BALR 14,15 Go to it @SC86299 10273000
- LM 4,5,FDBBUFF Get buffer and size @SC86299 10274000
- LH 7,FABLRECL Actual length @SC86299 10275000
- AR 7,1 End of record @SC86299 10276000
- BAL 2,DSKTV @SC86299 10277000
- LA 1,4(1) Skip over SDW if V @SC86299 10278000
- SR 7,1 Revised length @SC86299 10279000
- LR 6,1 @SC86299 10280000
- CR 7,5 @SC86299 10281000
- BNL *+6 @SC86299 10282000
- LR 5,7 Buffer not filled @SC86299 10283000
- L 1,4(13) @SC86299 10284000
- ST 5,20(1) Return length in R0 @SC86299 10285000
- MVCL 4,6 Copy to buffer @SC86299 10286000
- B RTRN0 @SC86299 10287000
- * End of file on input. Don't close it yet. @SC86295 10288000
- DSKEOD LA 15,12 End return code @SC86295 10289000
- B RTRN @SC86295 10290000
- * 10291000
- * Write to file whose ticket is at (R1) 10292000
- DSKWRT DS 0H 10293000
- LTR 3,1 Get FAB ptr @SC86299 10294000
- BNP RTRN1 Not defined anymore @SC86299 10295000
- LM 4,5,FDBBUFF Get buffer and size @SC86299 10296000
- LR 6,5 Copy for LRECL @SC86299 10297000
- CH 6,FDBLRC @SC86299 10298000
- BNH *+8 @SC86299 10299000
- LH 6,FDBLRC Don't allow more than LRECL if V @SC86299 10300000
- BAL 2,DSKTV @SC86299 10301000
- LA 6,4(5) + 4 if RECFM=V @SC86299 10302000
- STH 6,FABLRECL Set up for output @SC86299 10303000
- L 15,FABGET I/O routine @SC86299 10304000
- BALR 14,15 Do it @SC86299 10305000
- XC 0(4,1),0(1) @SC86299 10306000
- STCM 6,3,0(1) In case V @SC86299 10307000
- BAL 2,DSKTV @SC86299 10308000
- LA 1,4(1) V: space over SDW @SC86299 10309000
- LR 6,1 @SC86299 10310000
- LR 7,5 @SC86299 10311000
- MVCL 6,4 Copy to output record @SC86299 10312000
- B RTRN0 @SC86295 10313000
- * 10314000
- DSKTV TM FABRECFM,FABRECU @SC86299 10315000
- BNM 4(2) U @SC86299 10316000
- TM FABRECFM,FABRECF @SC86299 10317000
- BO 4(2) F @SC86299 10318000
- BR 2 V @SC86299 10319000
- * Return on error, release useless block, if any 10320000
- DSKER1 LTR 1,4 Any block assigned? @SC86295 10321000
- BZ RTRN1 No @SC86295 10322000
- LA 0,FABDWDS Yes, release it @SC86295 10323000
- DMSFRET DWORDS=(0),LOC=(1) @SC86295 10324000
- B RTRN1 Flag error @SC86295 10325000
- * 10326000
- DSKALC LR 5,1 Save FDB ptr @SC86295 10327000
- LA 6,1 Update counter @SC86299 10328000
- A 6,EVCTR @SC86299 10329000
- ST 6,EVCTR @SC86299 10330000
- LA 0,FABDWDS @SC86295 10331000
- DMSFREE DWORDS=(0),ERR=DSKER1 @SC86295 10332000
- LR 3,1 New block ptr @SC86295 10333000
- LR 4,1 @SC86295 10334000
- L 1,4(13) @SC86295 10335000
- ST 3,20(1) Return R0 @SC86295 10336000
- XC 0(8*FABDWDS,3),0(3) @SC86295 10337000
- MVC FDBD(FDBCOP),0(5) Copy user's FDB @SC86295 10338000
- MVC FABDSN,0(2) @SC86299 10339000
- LR 15,2 Set up DSN ptr @SC86299 10340000
- LA 0,FABDDNAM Get DDN ptr @SC86299 10341000
- LA 1,FDBUNT Get UNIT ptr @SC86299 10342000
- LA 2,FDBVOL Get VOL ptr @SC86299 10343000
- STM 15,2,DYNPL Set up DYNALC @SC86299 10344000
- MVI FABBUFCB+3,1 Fill out DCB @SC86299 10345000
- MVI FABDSORG,X'40' =PS @SC86299 10346000
- MVI FABIOBAD+3,1 @SC86299 10347000
- LA 0,DSKEOD @SC86299 10348000
- LA 1,DSKOPEX @SC86299 10349000
- STM 0,1,FABEODAD @SC86299 10350000
- UNPK FABDDNAM,EVCTR(5) @SC86299 10351000
- TR FABDDNAM,TRHEX Get unique DDNAME @SC86299 10352000
- MVI FABDDNAM,C'K' @SC86299 10353000
- MVI FABDDNAM+7,C'Z' @SC86299 10354000
- MVC FABOFLGS(4),=X'02,00,48,48' @SC86299 10355000
- MVI FABCHECK+3,1 @SC86299 10356000
- LA 1,RTRN1 @SC86299 10357000
- ST 1,FABSYNAD In case of error @SC86299 10358000
- MVI FABIOBA+3,1 @SC86299 10359000
- MVI FABEOBAD+3,1 GUP1.1 10360000
- MVI FABRECAD+3,1 GUP1.1 10361000
- MVI FABCNTRL+3,1 GUP1.1 10362000
- MVI FABEOB+3,1 @SC86299 10363000
- DSKFABS LH 1,FDBLRC Copy Info to DCB @SC86299 10364000
- CLI FABDSN,C'+' Just DDNAME? GUP1.1 10365000
- BE DSKDDA Yes, copy it to FAB GUP1.1 10366000
- STH 1,FABLRECL @SC86299 10367000
- MVC FABBLKSI,FDBBLKSI @SC86299 10368000
- MVI FABRECFM,FABRECU @SC86299 10369000
- CLI FDBRCF,C'U' @SC86299 10370000
- BER 9 @SC86299 10371000
- MVI FABRECFM,FABRECF+FABRECBR @SC86299 10372000
- CLI FDBRCF,C'F' @SC86299 10373000
- BER 9 @SC86299 10374000
- MVI FABRECFM,FABRECV+FABRECBR @SC86299 10375000
- LA 1,4(1) Allow for RDW @SC86299 10376000
- STH 1,FABLRECL @SC86299 10377000
- BR 9 @SC86299 10378000
- DSKDDA MVC FABDDNAM,FABDSN+1 Copy to DDNAME GUP1.1 10379000
- BR 9 GUP1.1 10380000
- * 10381000
- * Call with R15->name, return to R2 with CC set (Z if ok) 10382000
- DSKLKP SR 0,0 @SC86299 10383000
- CLI 0(15),C'+' Just DDNAME? GUP1.1 10384000
- BER 2 Yes, say we found it GUP1.1 10385000
- LA 1,CAMVOLS @SC86299 10386000
- LA 14,X'44' Name code @SC86299 10387000
- SLL 14,24 @SC86299 10388000
- STM 14,1,CAMLOC Save dsn ptr, etc @SC86299 10389000
- LA 0,CAMVOLS+6 @SC86299 10390000
- LA 1,CAMDSCB @SC86299 10391000
- LA 14,X'C1' Search code @SC86299 10392000
- SLL 14,24 @SC86299 10393000
- STM 14,1,CAMOBT @SC86299 10394000
- LOCATE CAMLOC @SC86299 10395000
- LTR 6,15 Retain 1st code in R6 @SC86299 10396000
- BNZR 2 Give up @SC86299 10397000
- OBTAIN CAMOBT Get DSCB @SC86299 10398000
- LTR 15,15 Test return code @SC86299 10399000
- BR 2 @SC86295 10400000
- * 10401000
- DSKVALS LA 0,FDBD Ptr to FDB @SC86295 10402000
- L 1,4(13) @SC86295 10403000
- ST 0,24(1) Return ptr to caller @SC86295 10404000
- CLI FABDSN,C'+' Just DDNAME? GUP1.1 10405000
- BER 14 Yes, done: no DSCB GUP1.1 10406000
- MVC FDBBLKSI,DS1BLK @SC86299 10407000
- MVC FDBVOL,DS1VOL Copy volume name @SC86299 10408000
- LH 1,DS1BLK Use BLKSIZE if 'U' @SC86299 10409000
- MVI FDBRCF,C'U' @SC86299 10410000
- TM DS1RCF,FABRECU @SC86299 10411000
- BO DSKVLR @SC86299 10412000
- LH 1,DS1LRC Use LRECL if 'F' @SC86299 10413000
- MVI FDBRCF,C'F' @SC86299 10414000
- TM DS1RCF,FABRECF @SC86299 10415000
- BO DSKVLR @SC86299 10416000
- MVI FDBRCF,C'V' @SC86299 10417000
- S 1,F4 Use LRECL-4 if 'V' @SC86299 10418000
- DSKVLR STH 1,FDBLRC @SC86299 10419000
- BR 14 @SC86299 10420000
- * 10421000
- DSKOPEX DC 0F'0',X'85',AL3(DSKOPC) OPEN EXIT @SC86299 10422000
- * 10423000
- DSKOPC LR 3,1 @SC86299 10424000
- LH 5,FABBLKSI @SC86299 10425000
- LTR 5,5 @SC86299 10426000
- BP *+8 @SC86299 10427000
- LH 5,=H'6233' @SC86299 10428000
- LR 6,5 @SC86299 10429000
- TM FABRECFM,FABRECU @SC86299 10430000
- BO DSKOPS @SC86299 10431000
- LH 6,FABLRECL @SC86299 10432000
- BNZ *+8 @SC86299 10433000
- OI FABRECFM,FABRECF+FABRECBR @SC86299 10434000
- LTR 6,6 @SC86299 10435000
- BP DSKOPQ @SC86299 10436000
- LA 6,80 @SC86299 10437000
- BAL 2,DSKTV @SC88049 10438000
- LA 6,4(6) Allow LRECL=84 for VB @SC88049 10439000
- DSKOPQ TM FABRECFM,FABRECF @SC86299 10440000
- BZ DSKOPV @SC86299 10441000
- SR 4,4 @SC86299 10442000
- DR 4,6 @SC86299 10443000
- LTR 5,5 @SC88104 10444000
- BP *+8 @SC88104 10445000
- LA 5,1 BLKSIZE was less than LRECL! @SC88104 10446000
- MR 4,6 @SC86299 10447000
- B DSKOPS @SC86299 10448000
- DSKOPV LA 4,4(6) @SC86299 10449000
- CR 4,5 @SC86299 10450000
- BNH DSKOPS @SC86299 10451000
- LR 5,4 @SC86299 10452000
- DSKOPS STH 6,FABLRECL @SC86299 10453000
- STH 5,FABBLKSI @SC86299 10454000
- BR 14 @SC86299 10455000
- * 10456000
- LOCALS , @SC86295 10457000
- EXIT 10458000
-